package voxbox.wrapper;

import com.sun.jna.Library;

public interface VoxiNativeLibWrapper extends Library {
	public int voxi_breath(VoxiInputsT ins);

	public void voxi_doscreencap();

	public void voxi_drawbox(VoxiFrame vf, float x0, float y0, float z0,
			float x1, float y1, float z1, int fillmode, int col);

	public void voxi_drawcube(VoxiFrame vf, VoxiPoint3d p, VoxiPoint3d r,
			VoxiPoint3d d, VoxiPoint3d f, int fillmode, int col);

	public float voxi_drawheimap(VoxiFrame vf, TileType pic,
			int usecomp, int colorkey, int heimin, float scx, float scy,
			float scz, float posx, float posy, float posz, int flags);

	public void voxi_drawlin(VoxiFrame vf, float x0, float y0, float z0,
			float x1, float y1, float z1, int col);

	public void voxi_drawpol(VoxiFrame vf, PolT[] pt, int n, int col);

	public void voxi_drawsph(VoxiFrame vf, float fx, float fy, float fz,
			float rad0, float rad1, int col);

	public void voxi_drawspr(VoxiFrame vf, String st, VoxiPoint3d p,
			VoxiPoint3d r, VoxiPoint3d d, VoxiPoint3d f, int col);

	public void voxi_drawvox(VoxiFrame vf, float fx, float fy, float fz,
			int col);

	public void voxi_frame_end();

	public int voxi_frame_start(VoxiFrame vf);

	public int voxi_keyread();

	public int voxi_keystat(int i);

	public double voxi_klock();

	public int voxi_init(VoxiWindT vw);

	public int voxi_loadini_int(VoxiWindT vw);

	public void voxi_playsound(String st, int chan, int volperc0,
			int volperc1, float frqmul);

	public void voxi_printalph(VoxiFrame vf, VoxiPoint3d p, VoxiPoint3d r,
			VoxiPoint3d d, int col, String st);

	public void voxi_quitloop();

	// public void voxi_setaudmixcb (void usermixfunc(int[] sampbuf, int
	// nsamps)); ???
	public void voxi_setview(VoxiFrame vf, float x0, float y0, float z0,
			float x1, float y1, float z1);

	public void voxi_uninit_int();
}